package com.spring.quickstart.common.validator.utils;

import java.util.Iterator;
import java.util.Set;

import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;

/**
 * 模块说明: 验证对象属性值 
 * 开发人员: xiongxin 
 * 开发时间: 2016年8月15日 
 * 系统版本: v1.0
 */
public class ValidateUtils {

	/**
	 * 方法作用：验证对象参数合法性
	 * 
	 * @param obj
	 *            被验证对象
	 * @param groups
	 *            验证组（非必选入参）
	 * @return
	 */
	public static String validateModel(Object obj, Class<?>... groups) {
		String errMsg = "";

		Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
		Set<ConstraintViolation<Object>> constraintViolations = validator.validate(obj, groups);// 验证某个对象,，其实也可以只验证其中的某一个属性的
		Iterator<ConstraintViolation<Object>> iter = constraintViolations.iterator();
		while (iter.hasNext()) {
			ConstraintViolation<Object> object = iter.next();
			String str = object.getPropertyPath().toString();
			String message = object.getMessage();
			errMsg = errMsg.concat(str).concat(":").concat(message).concat("|");
		}

		return errMsg;
	}
}
